/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cajeroautomatico;

/**
 *
 * @author Jose Gabriel Rivera
 */
import java.util.Scanner;
public class CajeroAutomatico {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        ServicioBancario servicioBancario;
        servicioBancario = new ServicioBancario();
        
        Cajero cajero;
        cajero = new Cajero(500000,12345);
        
        Scanner leer = new Scanner(System.in);
        
        char op;
        
        
        while(true){
            boolean recibo;
            
            System.out.println("Bienvenido al cajero");
            System.out.println("Ingrese su nro de cuenta:");
            cajero.usuario.setNroCuenta(leer.next());
            System.out.println("Ingrese su clave:");
            cajero.usuario.setClave(leer.nextShort());
            
            System.out.println("Elija una operacion:");
            System.out.println("1) Cambio de clave");
            System.out.println("2) Retiro");
            System.out.println("3) Deposito");
            System.out.println("4) Consulta de saldo");
            System.out.println("5) Cancelar");
            System.out.print("Opcion: ");
            op = leer.next().charAt(0);
            
            System.out.println("Desea imprimir recibo?");
            System.out.println(" 1) Si");
            System.out.println(" 2) No");
            while(true){
                switch(leer.next().charAt(0)){
                    case '1':
                        recibo=true;
                        break;
                    case '2':
                        recibo=false;
                        break;
                    default:
                        System.out.println("Opcion erronea");
                        continue;
                }
                break;
            }
            switch (op){
                
                case '1': //Cambio de clave
                    short claveVieja,claveNueva1,claveNueva2;
                    cajero.setOperacion(op);
                    System.out.println("Ingrese su clave actual:");
                    claveVieja = leer.nextShort();
                    System.out.println("Ingrese su clave nueva:");
                    claveNueva1 = leer.nextShort();
                    System.out.println("Ingrese su clave nueva otra vez:");
                    claveNueva2 = leer.nextShort();
                    if (cajero.cambioClave(claveVieja, claveNueva1, claveNueva2)){
                        cajero.usuario.setClaveAuxiliar(claveNueva1);
                        cajero.setOperacion(op);
                    }else{
                        System.out.println("Error al cambiar la clave, verifique sus datros");
                        continue;
                    }
                    break;
                case '2': //Retiro
                    System.out.println("Ingrese el monto a retirar:");
                    cajero.usuario.setMonto(leer.nextDouble());
                    cajero.setOperacion(op);
                    break;
                case '3': //Deposito
                    System.out.println("Ingrese el monto a depositar:");
                    cajero.usuario.setMonto(leer.nextDouble());
                    cajero.setOperacion(op);
                    break;
                case '4': //Consulta saldo
                    System.out.println("Su consulta aparecerá en el recibo");
                    cajero.setOperacion(op);
                    break;
                case '5': //Cancelar
                    continue;
                default:
                    System.out.println("Opción invalida");
            }
            if (servicioBancario.verificarDatos(cajero.usuario) && servicioBancario.operar(cajero)){
                System.out.println("Operacion exitosa");
                if(recibo || op=='4'){
                    System.out.println("La cuenta:"+cajero.usuario.getNroCuenta());
                    System.out.println("Actualmente tiene un saldo de:");
                    System.out.println(cajero.usuario.getSaldo());
                }
            }else{
                System.out.println("Operacion invalida");
            }

        }

    }
}